// Copyright (c) 2016 Intel Corporation. All rights reserved.
// Use of this source code is governed by a MIT-style license that can be
// found in the LICENSE file.

#ifndef _EVENT_INFO_H_
#define _EVENT_INFO_H_

#include <node.h>
#include <v8.h>

#include <string>

#include "gen/array_helper.h"
#include "gen/generator_helper.h"

class EventInfo {
 public:
  EventInfo();
  EventInfo(std::string accuracy, ArrayHelper pose)
      : accuracy_(accuracy), camera_pose_(pose) {}

  EventInfo(const EventInfo& rhs);

  ~EventInfo();

  EventInfo& operator = (const EventInfo& rhs);

 public:
  std::string get_accuracy() const {
    return this->accuracy_;
  }

  ArrayHelper get_cameraPose() const {
    return this->camera_pose_;
  }

  void SetJavaScriptThis(v8::Local<v8::Object> obj) {
    // Ignore this if you don't need it
    // Typical usage: emit an event on `obj`
  }

 private:
  std::string accuracy_;

  ArrayHelperStorage camera_pose_;
};

#endif  // _EVENT_INFO_H_
